summaryrefslogtreecommitdiff
path: root/app/[lng]/evcp/(evcp)/(master-data)
diff options
context:
space:
mode:
Diffstat (limited to 'app/[lng]/evcp/(evcp)/(master-data)')
-rw-r--r--app/[lng]/evcp/(evcp)/(master-data)/buyer-signature/page.tsx2
-rw-r--r--app/[lng]/evcp/(evcp)/(master-data)/esg-check-list/page.tsx6
-rw-r--r--app/[lng]/evcp/(evcp)/(master-data)/evaluation-check-list/page.tsx6
-rw-r--r--app/[lng]/evcp/(evcp)/(master-data)/evaluation-target-list/page.tsx6
-rw-r--r--app/[lng]/evcp/(evcp)/(master-data)/general-contract-template/page.tsx8
-rw-r--r--app/[lng]/evcp/(evcp)/(master-data)/material-groups/page.tsx9
-rw-r--r--app/[lng]/evcp/(evcp)/(master-data)/p-items/page.tsx9
-rw-r--r--app/[lng]/evcp/(evcp)/(master-data)/payment-conditions/page.tsx6
-rw-r--r--app/[lng]/evcp/(evcp)/(master-data)/pq-criteria/page.tsx6
-rw-r--r--app/[lng]/evcp/(evcp)/(master-data)/vendor-check-list/page.tsx7
10 files changed, 50 insertions, 15 deletions
diff --git a/app/[lng]/evcp/(evcp)/(master-data)/buyer-signature/page.tsx b/app/[lng]/evcp/(evcp)/(master-data)/buyer-signature/page.tsx
index 96bf783c..dfbd605b 100644
--- a/app/[lng]/evcp/(evcp)/(master-data)/buyer-signature/page.tsx
+++ b/app/[lng]/evcp/(evcp)/(master-data)/buyer-signature/page.tsx
@@ -15,7 +15,7 @@ export default async function BuyerSignaturePage(props: { params: Promise<{ lng:
<div>
<h1 className="text-3xl font-bold">{t('menu.master_data.buyer_signature')}</h1>
<p className="text-muted-foreground mt-2">
- 계약서에 자동으로 적용될 삼성중공업 서명을 관리합니다.
+ {t('menu.master_data.buyer_signaturee_desc')}
</p>
</div>
diff --git a/app/[lng]/evcp/(evcp)/(master-data)/esg-check-list/page.tsx b/app/[lng]/evcp/(evcp)/(master-data)/esg-check-list/page.tsx
index a573c77b..4575e65b 100644
--- a/app/[lng]/evcp/(evcp)/(master-data)/esg-check-list/page.tsx
+++ b/app/[lng]/evcp/(evcp)/(master-data)/esg-check-list/page.tsx
@@ -9,14 +9,18 @@ import { getEsgEvaluations } from "@/lib/esg-check-list/service"
import { getEsgEvaluationsSchema } from "@/lib/esg-check-list/validation"
import { EsgEvaluationsTable } from "@/lib/esg-check-list/table/esg-table"
import { InformationButton } from "@/components/information/information-button"
+import { useTranslation } from "@/i18n"
interface IndexPageProps {
+ params: Promise<{lng: string}>
searchParams: Promise<SearchParams>
}
export default async function IndexPage(props: IndexPageProps) {
const searchParams = await props.searchParams
const search = getEsgEvaluationsSchema.parse(searchParams)
+ const {lng} = await props.params
+ const {t} = await useTranslation(lng, 'menu')
const validFilters = getValidFilters(search.filters)
@@ -35,7 +39,7 @@ export default async function IndexPage(props: IndexPageProps) {
<div>
<div className="flex items-center gap-2">
<h2 className="text-2xl font-bold tracking-tight">
- ESG 자가진단평가서 항목 관리
+ {t('menu.master_data.esg_checklist')}
</h2>
<InformationButton pagePath="evcp/esg-check-list" />
</div>
diff --git a/app/[lng]/evcp/(evcp)/(master-data)/evaluation-check-list/page.tsx b/app/[lng]/evcp/(evcp)/(master-data)/evaluation-check-list/page.tsx
index ccd6766b..5547b097 100644
--- a/app/[lng]/evcp/(evcp)/(master-data)/evaluation-check-list/page.tsx
+++ b/app/[lng]/evcp/(evcp)/(master-data)/evaluation-check-list/page.tsx
@@ -9,10 +9,12 @@ import { Skeleton } from '@/components/ui/skeleton';
import { Suspense } from 'react';
import { type SearchParams } from '@/types/table';
import { InformationButton } from '@/components/information/information-button';
+import { useTranslation } from '@/i18n';
// ----------------------------------------------------------------------------------------------------
/* TYPES */
interface EvaluationCriteriaPageProps {
+ params: Promise<{ lng: string }>
searchParams: Promise<SearchParams>
}
@@ -23,6 +25,8 @@ async function EvaluationCriteriaPage(props: EvaluationCriteriaPageProps) {
const searchParams = await props.searchParams;
const search = searchParamsCache.parse(searchParams);
const validFilters = getValidFilters(search.filters);
+ const { lng } = await props.params
+ const { t } = await useTranslation(lng, 'menu')
const promises = Promise.all([
getRegEvalCriteria({
...search,
@@ -37,7 +41,7 @@ async function EvaluationCriteriaPage(props: EvaluationCriteriaPageProps) {
<div>
<div className="flex items-center gap-2">
<h2 className="text-2xl font-bold tracking-tight">
- 협력업체 평가기준표 관리
+ {t('menu.master_data.evaluation_checklist')}
</h2>
<InformationButton pagePath="evcp/evaluation-check-list" />
</div>
diff --git a/app/[lng]/evcp/(evcp)/(master-data)/evaluation-target-list/page.tsx b/app/[lng]/evcp/(evcp)/(master-data)/evaluation-target-list/page.tsx
index 325037d8..b42c2037 100644
--- a/app/[lng]/evcp/(evcp)/(master-data)/evaluation-target-list/page.tsx
+++ b/app/[lng]/evcp/(evcp)/(master-data)/evaluation-target-list/page.tsx
@@ -9,6 +9,7 @@ import { getDefaultEvaluationYear, searchParamsEvaluationTargetsCache } from "@/
import { getEvaluationTargets } from "@/lib/evaluation-target-list/service"
import { InformationButton } from "@/components/information/information-button"
import { EvaluationTargetsTable } from "@/lib/evaluation-target-list/table/evaluation-target-table"
+import { useTranslation } from "@/i18n"
export const dynamic = 'force-dynamic'
export const revalidate = 0
@@ -19,11 +20,14 @@ export const metadata: Metadata = {
}
interface EvaluationTargetsPageProps {
+ params: Promise<{ lng: string }>
searchParams: Promise<SearchParams>
}
export default async function EvaluationTargetsPage(props: EvaluationTargetsPageProps) {
const searchParams = await props.searchParams
+ const { lng } = await props.params
+ const { t } = await useTranslation(lng, 'menu')
// ✅ 간소화된 파싱
const search = searchParamsEvaluationTargetsCache.parse(searchParams)
@@ -42,7 +46,7 @@ export default async function EvaluationTargetsPage(props: EvaluationTargetsPage
<div className="flex items-center justify-between space-y-2">
<div className="flex items-center gap-2">
<h2 className="text-2xl font-bold tracking-tight">
- 협력업체 평가 대상 관리
+ {t('menu.master_data.evaluation_target')}
</h2>
<InformationButton pagePath="evcp/evaluation-target-list" />
<Badge variant="outline" className="text-sm">
diff --git a/app/[lng]/evcp/(evcp)/(master-data)/general-contract-template/page.tsx b/app/[lng]/evcp/(evcp)/(master-data)/general-contract-template/page.tsx
index 8a652690..c82f6b5a 100644
--- a/app/[lng]/evcp/(evcp)/(master-data)/general-contract-template/page.tsx
+++ b/app/[lng]/evcp/(evcp)/(master-data)/general-contract-template/page.tsx
@@ -9,14 +9,18 @@ import { getContractTemplates } from "@/lib/general-contract-template/service"
import { searchParamsTemplatesCache } from "@/lib/general-contract-template/validations"
import { ContractTemplateTable } from "@/lib/general-contract-template/template/general-contract-template"
import { InformationButton } from "@/components/information/information-button"
+import { useTranslation } from "@/i18n"
interface IndexPageProps {
+ params: Promise<{lng: string}>
searchParams: Promise<SearchParams>
}
export default async function IndexPage(props: IndexPageProps) {
const searchParams = await props.searchParams
const search = searchParamsTemplatesCache.parse(searchParams)
+ const {lng} = await props.params
+ const {t} = await useTranslation(lng, 'menu')
const validFilters = getValidFilters(search.filters)
@@ -34,12 +38,12 @@ export default async function IndexPage(props: IndexPageProps) {
<div>
<div className="flex items-center gap-2">
<h2 className="text-2xl font-bold tracking-tight">
- 일반계약(Contract) 표준양식 관리
+ {t('menu.master_data.general_contract_template')}
</h2>
<InformationButton pagePath="evcp/general-contract-template" />
</div>
<p className="text-muted-foreground mt-2">
- 다양한 계약 유형의 표준양식을 관리합니다. LO, FA, PO, CS, EU 등 계약 종류별 템플릿을 등록하고 편집할 수 있습니다.
+ {t('menu.master_data.general_contract_template_desc')}
</p>
</div>
</div>
diff --git a/app/[lng]/evcp/(evcp)/(master-data)/material-groups/page.tsx b/app/[lng]/evcp/(evcp)/(master-data)/material-groups/page.tsx
index 3d019182..708fac1e 100644
--- a/app/[lng]/evcp/(evcp)/(master-data)/material-groups/page.tsx
+++ b/app/[lng]/evcp/(evcp)/(master-data)/material-groups/page.tsx
@@ -15,14 +15,17 @@ import { MaterialGroupTable } from "@/lib/material-groups/table/material-group-t
import { InformationButton } from "@/components/information/information-button"
import { MaterialGroupSyncButton } from "@/components/material-groups/sync-button"
import { searchParamsCache } from "@/lib/material-groups/validations"
+import { useTranslation } from "@/i18n"
interface MaterialGroupPageProps {
+ params: Promise<{ lng: string }>
searchParams: Promise<SearchParams>
}
export default async function MaterialGroupPage(props: MaterialGroupPageProps) {
const searchParams = await props.searchParams
-
+ const { lng } = await props.params
+ const { t } = await useTranslation(lng, 'menu')
// searchParamsCache를 사용해서 파라미터 파싱
const search = searchParamsCache.parse(searchParams)
@@ -43,12 +46,12 @@ export default async function MaterialGroupPage(props: MaterialGroupPageProps) {
<div>
<div className="flex items-center gap-2">
<h2 className="text-2xl font-bold tracking-tight">
- 자재그룹
+ {t('menu.master_data.material_master')}
</h2>
<InformationButton pagePath="evcp/material-groups" />
</div>
<p className="text-muted-foreground">
- MDG로부터 수신된 자재그룹 정보
+ {t('menu.master_data.material_master_desc')}
</p>
</div>
<div className="flex items-center gap-2">
diff --git a/app/[lng]/evcp/(evcp)/(master-data)/p-items/page.tsx b/app/[lng]/evcp/(evcp)/(master-data)/p-items/page.tsx
index 2b907a75..fa0cef19 100644
--- a/app/[lng]/evcp/(evcp)/(master-data)/p-items/page.tsx
+++ b/app/[lng]/evcp/(evcp)/(master-data)/p-items/page.tsx
@@ -8,14 +8,17 @@ import { getProcurementItems } from "@/lib/procurement-items/service"
import { ProcurementItemsTable } from "@/lib/procurement-items/table/procurement-items-table"
import { searchParamsCache } from "@/lib/procurement-items/validations"
import { InformationButton } from "@/components/information/information-button"
-
+import { useTranslation } from "@/i18n"
interface IndexPageProps {
+ params: Promise<{lng: string}>
searchParams: Promise<SearchParams>
}
export default async function IndexPage(props: IndexPageProps) {
const searchParams = await props.searchParams
const search = searchParamsCache.parse(searchParams)
+ const {lng} = await props.params
+ const {t} = await useTranslation(lng, 'menu')
const validFilters = getValidFilters(search.filters)
@@ -33,12 +36,12 @@ export default async function IndexPage(props: IndexPageProps) {
<div>
<div className="flex items-center gap-2">
<h2 className="text-2xl font-bold tracking-tight">
- 1회성 품목 관리
+ {t('menu.master_data.procurement_items')}
</h2>
<InformationButton pagePath="evcp/procurement-items" />
</div>
<p className="text-muted-foreground">
- 입찰에서 사용하는 1회성 품목을 등록하고 관리합니다.
+ {t('menu.master_data.procurement_items_desc')}
</p>
</div>
</div>
diff --git a/app/[lng]/evcp/(evcp)/(master-data)/payment-conditions/page.tsx b/app/[lng]/evcp/(evcp)/(master-data)/payment-conditions/page.tsx
index 49724328..ff6d24b2 100644
--- a/app/[lng]/evcp/(evcp)/(master-data)/payment-conditions/page.tsx
+++ b/app/[lng]/evcp/(evcp)/(master-data)/payment-conditions/page.tsx
@@ -8,7 +8,9 @@ import { SearchParamsCache } from "@/lib/payment-terms/validations";
import { getPaymentTerms } from "@/lib/payment-terms/service";
import { PaymentTermsTable } from "@/lib/payment-terms/table/payment-terms-table";
import { InformationButton } from "@/components/information/information-button";
+import { useTranslation } from "@/i18n"
interface IndexPageProps {
+ params: Promise<{ lng: string }>
searchParams: Promise<SearchParams>;
}
@@ -16,6 +18,8 @@ export default async function IndexPage(props: IndexPageProps) {
const searchParams = await props.searchParams;
const search = SearchParamsCache.parse(searchParams);
const validFilters = getValidFilters(search.filters);
+ const {lng} = await props.params
+ const {t} = await useTranslation(lng, 'menu')
const promises = Promise.all([
getPaymentTerms({
@@ -29,7 +33,7 @@ export default async function IndexPage(props: IndexPageProps) {
<div className="flex items-center justify-between space-y-2">
<div>
<div className="flex items-center gap-2">
- <h2 className="text-2xl font-bold tracking-tight">지급 조건 관리</h2>
+ <h2 className="text-2xl font-bold tracking-tight">{t('menu.master_data.payment_conditions')}</h2>
<InformationButton pagePath="evcp/payment-conditions" />
</div>
{/* <p className="text-muted-foreground">
diff --git a/app/[lng]/evcp/(evcp)/(master-data)/pq-criteria/page.tsx b/app/[lng]/evcp/(evcp)/(master-data)/pq-criteria/page.tsx
index 1a337cc9..e83696ce 100644
--- a/app/[lng]/evcp/(evcp)/(master-data)/pq-criteria/page.tsx
+++ b/app/[lng]/evcp/(evcp)/(master-data)/pq-criteria/page.tsx
@@ -7,14 +7,18 @@ import { searchParamsCache } from "@/lib/pq/validations"
import { getPQLists } from "@/lib/pq/service"
import { PqListsTable } from "@/lib/pq/table/pq-lists-table"
import { getProjects } from "@/lib/pq/service"
+import { useTranslation } from "@/i18n"
interface ProjectPageProps {
+ params: Promise<{ lng: string }>
searchParams: Promise<SearchParams>
}
export default async function ProjectPage(props: ProjectPageProps) {
const searchParams = await props.searchParams
const search = searchParamsCache.parse(searchParams)
+ const {lng} = await props.params
+ const {t} = await useTranslation(lng, 'menu')
// filters가 없는 경우를 처리
const validFilters = getValidFilters(search.filters)
@@ -33,7 +37,7 @@ export default async function ProjectPage(props: ProjectPageProps) {
<div className="flex items-center justify-between">
<div>
<h2 className="text-2xl font-bold tracking-tight">
- PQ 리스트 관리
+ {t('menu.master_data.pq_criteria')}
</h2>
{/* <p className="text-muted-foreground">
협력업체 등록을 위한, 협력업체가 제출할 PQ 항목을: 프로젝트별로 관리할 수 있습니다.
diff --git a/app/[lng]/evcp/(evcp)/(master-data)/vendor-check-list/page.tsx b/app/[lng]/evcp/(evcp)/(master-data)/vendor-check-list/page.tsx
index 955c95f0..4cc5a9a0 100644
--- a/app/[lng]/evcp/(evcp)/(master-data)/vendor-check-list/page.tsx
+++ b/app/[lng]/evcp/(evcp)/(master-data)/vendor-check-list/page.tsx
@@ -9,14 +9,19 @@ import { getGenralEvaluationsSchema } from "@/lib/general-check-list/validation"
import { GeneralEvaluationsTable } from "@/lib/general-check-list/table/general-check-list-table"
import { getGeneralEvaluations } from "@/lib/general-check-list/service"
import { InformationButton } from "@/components/information/information-button"
+import { useTranslation } from "@/i18n"
+
interface IndexPageProps {
+ params: Promise<{lng: string}>
searchParams: Promise<SearchParams>
}
export default async function IndexPage(props: IndexPageProps) {
const searchParams = await props.searchParams
const search = getGenralEvaluationsSchema.parse(searchParams)
+ const { lng } = await props.params
+ const { t } = await useTranslation(lng, 'menu')
const validFilters = getValidFilters(search.filters)
@@ -35,7 +40,7 @@ export default async function IndexPage(props: IndexPageProps) {
<div>
<div className="flex items-center gap-2">
<h2 className="text-2xl font-bold tracking-tight">
- 협력업체 평가자료 문항 관리
+ {t('menu.master_data.vendor_checklist')}
</h2>
<InformationButton pagePath="evcp/vendor-check-list" />
</div>